草庐IT

java - 覆盖构造函数

全部标签

ruby - 在 Rails 中覆盖 "show"资源路由

resources:some_resource即有路由/some_resource/:id事实上,:idforsome_resource会一直保存在session中,所以我想重写路径/some_resource/:id使用/some_resource/my。或者我想用/some_resource/覆盖它并删除路径GET/some_resource/以进行索引操作。我怎样才能达到这两个目标? 最佳答案 在你的routes.rb中放置:get"some_resource"=>"some_resource#show"行前resources

Ruby:如何更改函数调用中参数的值?

我将如何在ruby​​中实现一个函数,如下所示?change_me!(val)更新:我打算做的是:defchange_me!(val)val=val.chopwhileval.end_with?'#'orval.end_with?'/'end这刚刚结束......change_me!'test#///'=>"test#///" 最佳答案 您的想法是错误的。虽然可以在Ruby中执行此操作,但它会过于复杂。正确的做法是:val.change_me!当然,这取决于您要更改的类别。关键是,按照惯例,带有“!”的方法影响调用它们的类实例。所以

ruby - 如何使用 Rubyzip 库覆盖现有文件

我正在尝试解压缩一个包含多个文件的文件,这些文件可能已存在于目标目录中,也可能不存在。似乎默认行为是在文件已存在时抛出异常。如何解压缩到一个目录并简单地覆盖现有文件?这是我的代码:beginZip::ZipFile.open(source)do|zipfile|dir=zipfile.dirdir.entries('.').eachdo|entry|zipfile.extract(entry,"#{target}/#{entry}")endendrescueException=>elog_error("Errorunzippingfile:#{local_zip}#{e.to_s}")

ruby - 在 String 子类上覆盖 =~ 方法会产生不一致

我为String的子类覆盖了=~方法:classMyString重写的方法在某些情况下被正确调用:r=/abc/s=~r#=>"Overriddenmethod."s.send(:=~,r)#=>"Overriddenmethod."s.send(:=~,/abc/)#=>"Overriddenmethod."而在其他情况下它被绕过,而是调用String#=~:s=~/abc/#=>0s=~(/abc/)#=>0我可以在Ruby1.8.7、2.1.0上重现这些结果。有人知道为什么会这样吗?是错误吗? 最佳答案 在String#=~的

ruby - 如何测试使用 rspec 的 block 的函数

我有一个函数,它接受一个block,打开一个文件,产生并返回:defstart&block.....dosomestuffFile.open("filename","w")do|f|f.write("something")....dosomemorestuffyieldendend我正在尝试使用rspec为其编写测试。我如何stubFile.open以便它将对象f(由我提供)传递给block而不是尝试打开实际文件?像这样的东西:it"shouldtestsomething"domyobject=double("File",{'write'=>true})File.should_rece

ruby-on-rails - 覆盖由同一模块中的类方法定义的 ActiveSupport::Concern 模块中的方法

我有一个ActiveSupport::Concern模块,大致如下所示:moduleMyModelmoduleAcceptanceextendActiveSupport::Concernincludeddoenumstatus:[:declined,:accepted]enddefdeclined!self.status=:declined#someextralogicself.save!enddefaccepted!self.status=:accepted#someextralogicself.save!endendend这只会被包含到ActiveRecord类中,因此使用enum

ruby - 我可以覆盖任务 :environment in test_helper. rb 来测试 rake 任务吗?

我在Rakefile中有一系列rake任务,我想将其作为我的规范等的一部分进行测试。每个任务都以以下形式定义:task:do_somthing=>:environmentdo#Dosomethingwiththedatabasehereend:environment任务设置ActiveRecord/DataMapper数据库连接和类。我没有将其用作Rails的一部分,但我有一系列测试,我喜欢将其作为BDD的一部分运行。此片段说明了我如何尝试测试rake任务。defsetup@rake=Rake::Application.newRake.application=@rakeloadFile

ruby - 为什么我们不能覆盖 `||` 和 `&&` ?

DavidA.Black在他的书中说:[T]heconditionalassignmentoperator||=,aswellasitsrarelyspottedcousin&&=,bothofwhichprovidethesamekindofshortcutasthepseudooperatormethodsbutarebasedonoperators,namely||and&&,whichyoucan’toverride.为什么他特别提到我们不能覆盖||和&&? 最佳答案 与对象上的一些其他运算符不同,对象的行为在逻辑上可以取决

ruby-on-rails - 如何覆盖 'as_json' 或 'to_json' 方法,以便 'respond_to' 不包含指定信息?

我正在使用RubyonRails3,我想覆盖(可能在模型文件中)as_json或to_json方法以respond_to不包含某些信息的HTTP请求。在我的帐户模型中我有defas_json(options={})super(:except=>[:password])end在我的Controller中我有format.json{render:json=>@account,:status=>200}例如,当我向/account/1.json发出请求时,我还返回了出于安全原因我不想要的密码属性。那么,如何防止包含指定信息?我能做到,而且行得通format.json{render:json=

ruby - Ruby 真的可以用作函数式语言吗?

Ruby真的可以用作函数式语言吗?有哪些好的教程可以教授该语言的这一方面?注意:我真的想使用并坚持使用Ruby作为我的主要语言,所以我现在对转换为YAFL(另一种函数式语言)不感兴趣。我对Ruby的功能方面相对于标准功能语言基线的表现非常感兴趣。谢谢。 最佳答案 是的......有点。Ruby缺乏合理的结构来强制实现不变性。(Object#freeze不算)不变性确实是函数式语言的基石。此外,Ruby的核心库高度面向命令式设计。它的Array和Hash类本质上都是可变的,甚至String也有使非不可变的方法(例如gsub!)。具有讽